#include <activeds.h>
#include <Iads.h>

#include <sddl.h>

CString GetErrorMessage( HRESULT hr );
CString GetADSIError( HRESULT hr );
HRESULT PropertyValueToString( LONG lADsType, IADsPropertyValue *pValue, CString &sValue );
HRESULT  VariantToPtrList(  VARIANT& refvar, CPtrList & refptrlist);
void StringToStringList( CString s, CStringList &sList );
void StringListToString( CStringList &sList, CString &s );
void ADsToStringList(ADSVALUE *pValues, DWORD dwNumber, CStringList &sList );
BOOL CreateQPDirectory(LPCSTR szDir, DWORD *dwErrorCode);
CString CreateSimplePwd(CString cUser);
BOOL DeleteDirectory(LPCSTR szDir, DWORD *dwErrorCode);
